package com.wing.bill.controller.admin;

import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wing.bill.service.CabinetFormService;
import com.wing.cabinet.model.response.CellInventoryInoutVO;
import com.wing.common.utils.JsonResult;
import com.wing.common.utils.PageResult;
import com.wing.web.utils.JwtUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

@Validated
@Api(value = "Admin-刀具柜报表", tags = "#/bill/cabinet")
@RestController("cabinetFormController")
@RequestMapping("bill/admin/cabinetForm")
@RequiredArgsConstructor
public class CabinetFormController {

    private final CabinetFormService cabinetFormService;
    
    final String dateType = "before";

    //顶部数据和点击
    @ApiOperation(value = "每个选项卡页面的顶部数据", notes = "搜索")
    @GetMapping("/result")
    public JsonResult result(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("click")String click//顶部数据点击
            ,@RequestParam("table")String table//选项卡 从左至右1-7 新增的3个8 9 0
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
            ) {
        String code = JwtUtils.getEnterpriseCode();
        if (table.equals("1")){//领新选项卡
            return cabinetFormService.list1(type,startTime,endTime,Integer.valueOf(click),code,mainCabCode);
        }else if(table.equals("2")){//存入选项卡
            return cabinetFormService.list2(type,startTime,endTime,Integer.valueOf(click),code,mainCabCode);
        }else if(table.equals("3")){//取出选项卡
            return cabinetFormService.list3(type,startTime,endTime,Integer.valueOf(click),code,mainCabCode);
        }else if(table.equals("4")){//盘验选项卡
            return cabinetFormService.list4(type,startTime,endTime,Integer.valueOf(click),code,mainCabCode);
        }else if(table.equals("5")){//报修选项卡
            return cabinetFormService.list5(type,dateType,startTime,endTime,Integer.valueOf(click),code,mainCabCode);
        }else if(table.equals("6")){//报废选项卡
            return cabinetFormService.list6(type,dateType,startTime,endTime,Integer.valueOf(click),code,mainCabCode);
        }else if(table.equals("7")){//异常选项卡
            return cabinetFormService.list7(type,dateType,startTime,endTime,Integer.valueOf(click),code,mainCabCode);
        }else if (table.equals("8")){//售刀柜选项卡
            return cabinetFormService.list8(type,startTime,endTime,Integer.valueOf(click),code,mainCabCode);
        }else if (table.equals("9")){//存刀柜选项卡
            return cabinetFormService.list9(type,startTime,endTime,Integer.valueOf(click),code,mainCabCode);
        }else if (table.equals("0")){//在用选项卡
            return cabinetFormService.list0(type,startTime,endTime,Integer.valueOf(click),code);
        }else if(table.equals("10")){//主柜选项卡
            return cabinetFormService.queryCabinetStatistics(type,click,startTime,endTime,mainCabCode);
        }else if (table.equals("11")){//报失选项卡
            return cabinetFormService.list11(type,startTime,endTime,Integer.valueOf(click),code);
        }
        return JsonResult.fail("查询失败");
    }


    //每个选项卡的柱状图 每个选项卡，每个图都是单独的接口
    //领新选项卡
    @ApiOperation(value = "领新选项卡第一个图", notes = "搜索")
    @GetMapping("/newFirstChart")
    public JsonResult newFirstChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("other")String other//柱状图饼状图的下拉选 不同的选项 规格 oldSpec 编号 skuCode 品牌 brand  类型 type  分类 category 部门  dep 责任人 person 设备 device
            ,@RequestParam("param")String param //柱状图饼状图的下拉选 不同的选项 qua 数量 money 金额
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.newFirstChart(type,startTime,endTime,other,param,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "领新选项卡第二个图", notes = "搜索")
    @GetMapping("/newSecondChart")
    public JsonResult newSecondChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("cabCode")String cabCode //根据柜子编号查询展示货道的 传柜子编号
            ,@RequestParam("param")String param //柱状图饼状图的下拉选 不同的选项 qua 数量 money 金额
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.newSecondChart(type,startTime,endTime,cabCode,param,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "领新选项卡第三个图", notes = "搜索")
    @GetMapping("/newThirdChart")
    public JsonResult newThirdChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("other")String other//柱状图饼状图的下拉选 不同的选项 规格 oldSpec 编号 skuCode 品牌 brand  类型 type  分类 category 部门  dep 责任人 person 设备 device
            ,@RequestParam("param")String param //柱状图饼状图的下拉选 不同的选项 qua 数量 money 金额
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.newThirdChart(type,startTime,endTime,other,param,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "领新选项卡第四个图", notes = "搜索")
    @GetMapping("/newFourthChart")
    public JsonResult newFourthChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("param")String param //柱状图饼状图的下拉选 不同的选项 qua 数量 money 金额
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.newFourthChart(type,startTime,endTime,param,JwtUtils.getEnterpriseCode(),mainCabCode);}

    //存入选项卡
    @ApiOperation(value = "存入选项卡第一个图", notes = "搜索")
    @GetMapping("/inFirstChart")
    public JsonResult inFirstChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.inFirstChart(type,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "存入选项卡第二个图", notes = "搜索")
    @GetMapping("/inSecondChart")
    public JsonResult inSecondChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.inSecondChart(type,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "存入选项卡第三个图", notes = "搜索")
    @GetMapping("/inThirdChart")
    public JsonResult inThirdChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.inThirdChart(type,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    //取出选项卡
    @ApiOperation(value = "取出选项卡第一个图", notes = "搜索")
    @GetMapping("/outFirstChart")
    public JsonResult outFirstChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.outFirstChart(type,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "取出选项卡第二个图", notes = "搜索")
    @GetMapping("/outSecondChart")
    public JsonResult outSecondChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.outSecondChart(type,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "取出选项卡第三个图", notes = "搜索")
    @GetMapping("/outThirdChart")
    public JsonResult outThirdChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.outThirdChart(type,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    //盘验选项卡
    @ApiOperation(value = "盘验选项卡第一个图", notes = "搜索")
    @GetMapping("/checkFirstChart")
    public JsonResult checkFirstChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.checkFirstChart(type,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "盘验选项卡第二个图", notes = "搜索")
    @GetMapping("/checkSecondChart")
    public JsonResult checkSecondChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return
            cabinetFormService.checkSecondChart(type,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "盘验选项卡第三个图", notes = "搜索")
    @GetMapping("/checkThirdChart")
    public JsonResult checkThirdChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.checkThirdChart(type,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "盘验选项卡第四个图", notes = "搜索")
    @GetMapping("/checkFourthChart")
    public JsonResult checkFourthChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.checkFourthChart(type,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "盘验选项卡第五个图", notes = "搜索")
    @GetMapping("/checkFifthChart")
    public JsonResult checkFifthChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.checkFifthChart(type,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}


    //修磨选项卡
    @ApiOperation(value = "修磨选项卡第一个图", notes = "搜索")
    @GetMapping("/repairFirstChart")
    public JsonResult repairFirstChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.repairFirstChart(type,dateType,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "修磨选项卡第二个图", notes = "搜索")
    @GetMapping("/repairSecondChart")
    public JsonResult repairSecondChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.repairSecondChart(type,dateType,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "修磨选项卡第三个图", notes = "搜索")
    @GetMapping("/repairThirdChart")
    public JsonResult repairThirdChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.repairThirdChart(type,dateType,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "修磨选项卡第四个图", notes = "搜索")
    @GetMapping("/repairFourthChart")
    public JsonResult repairFourthChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.repairFourthChart(type,dateType,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "修磨选项卡第五个图", notes = "搜索")
    @GetMapping("/repairFifthChart")
    public JsonResult repairFifthChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.repairFifthChart(type,dateType,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    //报废选项卡
    @ApiOperation(value = "报废选项卡第一个图", notes = "搜索")
    @GetMapping("/recycleFirstChart")
    public JsonResult recycleFirstChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.recycleFirstChart(type,dateType,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "报废选项卡第二个图", notes = "搜索")
    @GetMapping("/recycleSecondChart")
    public JsonResult recycleSecondChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.recycleSecondChart(type,dateType,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "报废选项卡第三个图", notes = "搜索")
    @GetMapping("/recycleThirdChart")
    public JsonResult recycleThirdChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.recycleThirdChart(type,dateType,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "报废选项卡第四个图", notes = "搜索")
    @GetMapping("/recycleFourthChart")
    public JsonResult recycleFourthChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.recycleFourthChart(type,dateType,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "报废选项卡第五个图", notes = "搜索")
    @GetMapping("/recycleFifthChart")
    public JsonResult recycleFifthChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.recycleFifthChart(type,dateType,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    //异常选项卡
    @ApiOperation(value = "异常选项卡第一个图", notes = "搜索")
    @GetMapping("/unusualFirstChart")
    public JsonResult unusualFirstChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.unusualFirstChart(type,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "异常选项卡第二个图", notes = "搜索")
    @GetMapping("/unusualSecondChart")
    public JsonResult unusualSecondChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.unusualSecondChart(type,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "异常选项卡第三个图", notes = "搜索")
    @GetMapping("/unusualThirdChart")
    public JsonResult unusualThirdChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.unusualThirdChart(type,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "异常选项卡第四个图", notes = "搜索")
    @GetMapping("/unusualFourthChart")
    public JsonResult unusualFourthChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.unusualFourthChart(type,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "异常选项卡第五个图", notes = "搜索")
    @GetMapping("/unusualFifthChart")
    public JsonResult unusualFifthChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.unusualFifthChart(type,startTime,endTime,JwtUtils.getEnterpriseCode(),mainCabCode);}

    //售刀柜选项卡
    @ApiOperation(value = "售刀柜选项卡第一个图", notes = "搜索")
    @GetMapping("/sellFirstChart")
    public JsonResult sellFirstChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("other")String other//柱状图饼状图的下拉选 不同的选项 规格 oldSpec 编号 skuCode 品牌 brand  类型 type  分类 category 部门  dep 责任人 person 设备 device
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.sellFirstChart(type,startTime,endTime,other,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "售刀柜选项卡第二个图", notes = "搜索")
    @GetMapping("/sellSecondChart")
    public JsonResult sellSecondChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("cabCode")String cabCode //根据柜子编号查询展示货道的 传柜子编号
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.sellSecondChart(type,startTime,endTime,cabCode,JwtUtils.getEnterpriseCode(),mainCabCode);}

    //存刀柜选项卡
    @ApiOperation(value = "存刀柜选项卡第一个图", notes = "搜索")
    @GetMapping("/storeFirstChart")
    public JsonResult storeFirstChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("other")String other//柱状图饼状图的下拉选 不同的选项 规格 oldSpec 编号 skuCode 品牌 brand  类型 type  分类 category 部门  dep 责任人 person 设备 device
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.storeFirstChart(type,startTime,endTime,other,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "存刀柜选项卡第二个图", notes = "搜索")
    @GetMapping("/storeSecondChart")
    public JsonResult storeSecondChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("cabCode")String cabCode //根据柜子编号查询展示货道的 传柜子编号
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.storeSecondChart(type,startTime,endTime,cabCode,JwtUtils.getEnterpriseCode(),mainCabCode);}

    @ApiOperation(value = "存刀柜选项卡第三个图", notes = "搜索")
    @GetMapping("/storeThirdChart")
    public JsonResult storeThirdChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("other")String other//柱状图饼状图的下拉选 不同的选项 规格 oldSpec 编号 skuCode 品牌 brand  类型 type  分类 category 部门  dep 责任人 person 设备 device
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){ return cabinetFormService.storeThirdChart(type,startTime,endTime,other,JwtUtils.getEnterpriseCode(),mainCabCode);}

    //在用选项卡
    @ApiOperation(value = "在用选项卡第一个图", notes = "搜索")
    @GetMapping("/useFirstChart")
    public JsonResult useFirstChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("other")String other//柱状图饼状图的下拉选 不同的选项 规格 oldSpec 编号 skuCode 品牌 brand  类型 type  分类 category 部门  dep 责任人 person 设备 device
    ){ return cabinetFormService.useFirstChart(type,startTime,endTime,other,JwtUtils.getEnterpriseCode());}

    @ApiOperation(value = "在用选项卡第二个图", notes = "搜索")
    @GetMapping("/useSecondChart")
    public JsonResult useSecondChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("other")String other//柱状图饼状图的下拉选 不同的选项 规格 oldSpec 编号 skuCode 品牌 brand  类型 type  分类 category 部门  dep 责任人 person 设备 device
    ){ return cabinetFormService.useSecondChart(type,startTime,endTime,other,JwtUtils.getEnterpriseCode());}

    //报失选项卡
    @ApiOperation(value = "报失选项卡第一个图", notes = "搜索")
    @GetMapping("/lossFirstChart")
    public JsonResult lossFirstChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("other")String other//柱状图饼状图的下拉选 不同的选项  物料规格 skuName 品牌 brand  类型 type  分类 category
    ){ return cabinetFormService.lossFirstChart(type,startTime,endTime,other,JwtUtils.getEnterpriseCode());}

    @ApiOperation(value = "报失选项卡第二个图", notes = "搜索")
    @GetMapping("/lossSecondChart")
    public JsonResult lossSecondChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("other")String other//柱状图饼状图的下拉选 不同的选项  部门  dep 责任人 person 设备 device
    ){ return cabinetFormService.lossSecondChart(type,startTime,endTime,other,JwtUtils.getEnterpriseCode());}




    //底部的列表
    @ApiOperation(value = "每个选项卡页面的列表", notes = "搜索")
    @GetMapping("/list")
    public PageResult data(
            @RequestParam(defaultValue = "1") Integer page
            ,@RequestParam(defaultValue = "10") Integer limit
            ,@RequestParam(defaultValue = "create_time") String sort
            ,@RequestParam(defaultValue = "desc") String order
            ,@RequestParam("table")String table
            ,@RequestParam("startTime")String startTime
            ,@RequestParam("endTime")String endTime
            ,@RequestParam("type")String type
    ){
        if (table.equals("1")){
            return cabinetFormService.data1(type,startTime,endTime,page,limit,sort,order);
        }else if(table.equals("2")){
            return cabinetFormService.data2(type,startTime,endTime,page,limit,sort,order);
        }
        else if(table.equals("3")){
            return cabinetFormService.data3(type,startTime,endTime,page,limit,sort,order);
        }
        else if(table.equals("4")){
            return cabinetFormService.data4(type,startTime,endTime,page,limit,sort,order);
        }
        else if(table.equals("5")){
            return cabinetFormService.data5(type,dateType,startTime,endTime,page,limit,sort,order);
        }
        else if(table.equals("6")){
            return cabinetFormService.data6(type,dateType,startTime,endTime,page,limit,sort,order);
        }
        else if(table.equals("7")){
            return cabinetFormService.data7(type,startTime,endTime,page,limit,sort,order);
        }
        else if(table.equals("8")){
            return cabinetFormService.data8(type,startTime,endTime,page,limit,sort,order);
        }
        else if(table.equals("9")){
            return cabinetFormService.data9(type,startTime,endTime,page,limit,sort,order);
        }
        else if(table.equals("0")){
            return cabinetFormService.data0(type,startTime,endTime,page,limit,sort,order);
        }
        return null;
    }

    @ApiOperation(value = "存刀柜选项卡第四个图", notes = "搜索")
    @GetMapping("/storeFourChart")
    public JsonResult storeFourChart(
            @RequestParam("status")String status
    ){ return cabinetFormService.storeFourChart(status,JwtUtils.getEnterpriseCode());}

    @ApiOperation(value = "柜子第一页看板头部", notes = "查询")
    @GetMapping("/queryCabinetTop")
    public JsonResult queryFirstCabinetTop(@RequestParam(name = "enterpriseCode")String enterpriseCode
    ){ return cabinetFormService.queryFirstCabinetTop(enterpriseCode);}

    @ApiOperation(value = "柜子第一页看板中间", notes = "查询")
    @GetMapping("/queryCabinetMiddle")
    public JsonResult queryFirstCabinetMiddle(@RequestParam(name = "enterpriseCode")String enterpriseCode
    ){ return cabinetFormService.queryFirstCabinetMiddle(enterpriseCode);}

    @ApiOperation(value = "柜子看板第二页", notes = "查询")
    @GetMapping("/querySecondCabinetBoard")
    public JsonResult querySecondCabinetBoard(@RequestParam(name = "type",required = false)String type
            ,@RequestParam(name = "startTime",required = false)String createTime
            ,@RequestParam(name = "enterpriseCode")String enterpriseCode){
        return cabinetFormService.querySecondCabinetBoard(type,createTime,enterpriseCode);
    }

    @ApiOperation(value = "主柜统计刀具消耗数量", notes = "查询")
    @GetMapping("/queryCabinetConsume")
    public JsonResult queryCabinetConsume(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam(name = "mainCabCode",required = false)String mainCabCode){
        return cabinetFormService.queryCabinetConsume(type,startTime,endTime,mainCabCode);
    }

    @ApiOperation(value = "主柜统计刀具金额", notes = "查询")
    @GetMapping("/queryCabinetMoney")
    public JsonResult queryCabinetMoney(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam(name = "mainCabCode",required = false)String mainCabCode){
        return cabinetFormService.queryCabinetMoney(type,startTime,endTime,mainCabCode);
    }

    @ApiOperation(value = "查询主柜消耗列表", notes = "查询")
    @GetMapping("/queryCabinetList")
    public PageResult<CellInventoryInoutVO> queryCabinetList(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam(defaultValue = "1") Integer page
            ,@RequestParam(defaultValue = "10") Integer limit
            ,@RequestParam(defaultValue = "create_time") String sort
            ,@RequestParam(defaultValue = "desc") String order
    ){
        Page<CellInventoryInoutVO> pg = new Page<>(page, limit);
        Map<String, Object> params = new HashMap<>();
        //排序
        if (StringUtils.isNotBlank(sort) && StringUtils.isNotBlank(order)) {
            params.put("sort", StrUtil.toUnderlineCase(sort));
            params.put("order", order);
        }
        params.put("enterpriseCode",JwtUtils.getEnterpriseCode());
        if(StringUtils.isNotBlank(startTime)&&StringUtils.isNotBlank(endTime)){
            params.put("begin",startTime);
            params.put("end",endTime);
        }
        params.put("begin",startTime);
        params.put("end",endTime);
        IPage<CellInventoryInoutVO> list = cabinetFormService.queryCabinetList(pg,params,type);
        return new PageResult<>(list.getRecords(), list.getTotal());
    }

    @ApiOperation(value = "电视机的看板", notes = "查询")
    @GetMapping("/queryTeleplayBoard")
    public JsonResult queryTeleplayBoard(@RequestParam(name = "type")String type){
        return cabinetFormService.queryTeleplayBoard(type);
    }

    @ApiOperation(value = "报废选项卡第六个图", notes = "搜索")
    @GetMapping("/recycleSixthChart")
    public JsonResult recycleSixthChart(
            @RequestParam("type")String type//012 当日往前一周往前一月
            ,@RequestParam("startTime")String startTime//时间搜索 开始时间
            ,@RequestParam("endTime")String endTime//时间搜索 结束时间
            ,@RequestParam("brandId")String brandId //品牌id
            ,@RequestParam("devCode")String devCode //机台
            ,@RequestParam("mainCabCode") String mainCabCode //主柜选择
    ){
        return cabinetFormService.recycleSixthChart(type,dateType,startTime,endTime,brandId,devCode,mainCabCode,3);
    }

}
